Skip to content

docs: seed worktrees with a copy of real userdata instead of banning it - #4949

Merged
t3dotgg merged 1 commit into
mainfrom
t3code/relax-t3-db-guidance
Jul 30, 2026
Merged

docs: seed worktrees with a copy of real userdata instead of banning it#4949
t3dotgg merged 1 commit into
mainfrom
t3code/relax-t3-db-guidance

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Jul 30, 2026

Copy link
Copy Markdown
Member

AGENTS.md told agents to never touch ~/.t3/userdata, so worktree testing happened against empty or stale ~/.t3/dev data. An empty database is a bad test.

The rule is now "never write to it": reading and copying from the live install are explicitly fine, and the Test data section recommends snapshotting the real database into the worktree's .t3/userdata with VACUUM INTO (safe against a live source, verified against the running install on this box). The plain-cp caveats about -wal/-shm siblings and open servers remain for the offline path.

Written by Claude Fable 5 via Claude Code.

🤖 Generated with Claude Code


Note

Low Risk
Documentation-only change to contributor agent rules; no runtime or security behavior in the product changes.

Overview
Updates AGENTS.md so agents treat ~/.t3/userdata as read/copy OK, write forbidden, instead of broadly “don’t touch the live install.” Rule 2 now points readers to Test data for using real data safely.

The Test data section recommends seeding the worktree’s .t3/userdata from ~/.t3/userdata (preferred) or ~/.t3/dev, and adds a VACUUM INTO one-liner to snapshot SQLite while the live server still has the source open. The older “copy only from ~/.t3/dev, never userdata” guidance is removed; cp still requires closed sources and -wal/-shm siblings.

Reviewed by Cursor Bugbot for commit 28852a4. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Seed worktree test data with copies of real userdata instead of banning it

Updates AGENTS.md to replace the blanket prohibition on using real user data in worktrees with a recommended workflow for copying it safely.

  • Clarifies that reading and copying from ~/.t3/userdata is allowed; only writing to the live install (starting a server against it, opening it read-write, or running cleanup) is prohibited.
  • Adds a step-by-step snapshot procedure using sqlite VACUUM INTO via bun to produce a consistent state.sqlite while the source database may still be open.
  • Notes that plain cp is only safe when no server has the source open, must include -wal and -shm, and that live file copies will be corrupt.
  • Clarifies that secrets/settings.json can optionally be copied in, and that symlinks must never be used.

Macroscope summarized 28852a4.

…ng it

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f7a82e93-fd31-415b-a626-d5d664c90c61

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Jul 30, 2026
@t3dotgg
t3dotgg enabled auto-merge (squash) July 30, 2026 09:28
@t3dotgg
t3dotgg merged commit 2f466ff into main Jul 30, 2026
16 checks passed
@t3dotgg
t3dotgg deleted the t3code/relax-t3-db-guidance branch July 30, 2026 09:29

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 28852a4. Configure here.

Comment thread AGENTS.md
```bash
mkdir -p .t3/userdata
rm -f .t3/userdata/state.sqlite* # VACUUM INTO refuses to overwrite
bun -e "new (require('bun:sqlite').Database)(process.env.HOME + '/.t3/userdata/state.sqlite', { readonly: true }).run(\"VACUUM INTO '.t3/userdata/state.sqlite'\")"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-seed while dev server runs

Medium Severity

The snapshot recipe removes and recreates .t3/userdata/state.sqlite* in the worktree but does not say to stop the worktree’s own vp run dev first. Re-running it while that server still has the destination database open can race or leave a corrupt or inconsistent sandbox copy, unlike the plain-cp warning about an open source.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 28852a4. Configure here.

github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Jul 30, 2026
## What's Changed
* fix(connect): suggest a serve command that matches how you ran connect by @t3dotgg in pingdotgg/t3code#4897
* fix(mobile): stop shared content errors in Personal Team builds by @t3dotgg in pingdotgg/t3code#4943
* perf(mobile): sends respond instantly, thread opens stop freezing by @t3dotgg in pingdotgg/t3code#4882
* fix(web): show Codex fast mode as a bolt by @t3dotgg in pingdotgg/t3code#4947
* docs: seed worktrees with a copy of real userdata instead of banning it by @t3dotgg in pingdotgg/t3code#4949


**Full Changelog**: pingdotgg/t3code@v0.0.32-nightly.20260730.954...v0.0.32-nightly.20260730.955

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32-nightly.20260730.955
tarik02 added a commit to tarik02-org/t3code that referenced this pull request Jul 30, 2026
* fix(desktop): restore T3 Connect sign-in (pingdotgg#4809)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Simplify files panel header (pingdotgg#4828)

* build(desktop): reduce installed app size by ~300MB (pingdotgg#4824)

* Update model version from claude-opus-4-8 to claude-opus-5 (pingdotgg#4832)

* Preserve the thread shell while detail loads (pingdotgg#4830)

* Reduce idle work and disk churn with native resource diagnostics (pingdotgg#2679)

Co-authored-by: codex <codex@users.noreply.github.com>

* fix(server): detect repositories after initialization (pingdotgg#4848)

* perf(server): merge separate staged/unstaged numstat calls into single diff HEAD --numstat (pingdotgg#4843)

* fix(git): disable external diff for review diff previews (pingdotgg#4854)

* Fix editable file focus and live syntax highlighting (pingdotgg#3979)

* fix(web): remember the rendered-markdown choice across threads (pingdotgg#4853)

Co-authored-by: Simon Doba <simon.doba@orbit.de>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

* chore(release): prepare v0.0.31

* fix(mobile): reduce thread feed scroll jank (pingdotgg#4874)

* fix(web): restore sidebar v2 thread actions and terminal icon (pingdotgg#4712)

* fix(web): settle button now works on hover, not just right-click (pingdotgg#4905)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(clients): disable add project while disconnected (pingdotgg#4834)

* fix(composer): hide default Codex service tier (pingdotgg#4784)

* docs: link iOS and Android app store downloads (pingdotgg#4902)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(web): align remote server update action (pingdotgg#4731)

* fix(connect): suggest a serve command that matches how you ran connect (pingdotgg#4897)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(mobile): stop shared content errors in Personal Team builds (pingdotgg#4943)

* perf(mobile): sends respond instantly, thread opens stop freezing (pingdotgg#4882)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(web): show Codex fast mode as a bolt (pingdotgg#4947)

* docs: seed worktrees with a copy of real userdata instead of banning it (pingdotgg#4949)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(mobile): support dragged images in the composer (pingdotgg#4953)

* fix(mobile): stop long iOS threads from jumping while scrolling up (pingdotgg#4867)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(web): keep worktree default when switching a draft's machine (pingdotgg#4964)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* perf(mobile): reconnect environments immediately on resume (pingdotgg#4878)

* feat(web): pasting a huge screenshot now compresses it instead of erroring (pingdotgg#4967)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(web): regenerate thread titles from sidebar (pingdotgg#4810)

* fix(web): show server update progress through reconnect (pingdotgg#4903)

---------

Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: wukko <me@wukko.me>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: ohbentos <72638975+ohbentos@users.noreply.github.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Simon Doba <simon.doba@hotmail.de>
Co-authored-by: Simon Doba <simon.doba@orbit.de>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: Jono Kemball <Noojuno@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Max Katz <me@maxkatz.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant